

a1=4513855932190587780512692251070948513905472536079140708186519998265613363916408288602023081671609336332823271976169443708346965729874135535872958782973382975364993581165018591335971709648749814573285241290480406050308656233944927823668976933579733318618949138978777831374262042028072274386196484449175052332019377
c=3303523331971096467930886326777599963627226774247658707743111351666869650815726173155008595010291772118253071226982001526457616278548388482820628617705073304972902604395335278436888382882457685710065067829657299760804647364231959804889954665450340608878490911738748836150745677968305248021749608323124958372559270
e = 1049

import gmpy2
import libnum


kn=pow(2,e)-a1
print(kn)
#调用libnum的分解模块
n1=libnum.factorize(kn)
p=170229264879724117919007372149468684565431232721075153274808454126426741324966131188484635914814926870341378228417496808202497615585946352638507704855332363766887139815236730403246238633855524068161116748612090155595549964229654262432946553891601975628848891407847198187453488358420350203927771308228162321231
q=34211
phi=(p-1)*(q-1)
d=libnum.invmod(e,phi)
m1=pow(c,d,p*q)

# m1 = m%n*1%n*2%n.....p-q%n
# m1 =m(p-q-1)！%n
# m1%p =m(p-q-1)！%p
# m1%=m(p-q-1)！%p
# m1*(p-q)%p...(p-2)%p=m(p-q)!%p..(p-q+1)%p..(p-2)%p


for i in range(p-q,p-1):
    m1=m1*i%p
print(libnum.n2s(m1))